package com.yonyou.pmclouds.workstopreport.mapper;

import com.yonyou.pmclouds.basecom.dao.BaseMapper;
import com.yonyou.pmclouds.project.entity.ProjectVO;
import com.yonyou.pmclouds.workstopreport.entity.WorkStopVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface WorkStopMapper extends BaseMapper<WorkStopVO> {
    /**
     * 通过报告ID查询停工报告
     */
    WorkStopVO selectReport(@Param("reportId")String reportId);

    /**
     * 根据条件查询停工条件
     */
    WorkStopVO[] queryByCondition(@Param("pkProjects")String[] pkProjects,
                                   @Param("creators") String[] creators,
                                   @Param("startDate") String startDate,
                                   @Param("endDate") String endDate,
                                   @Param("billStatus") int[] billStatus,
                                   @Param("start") int start,
                                   @Param("size") int size);

    /**
     * 根据条件查询数量
     */
    int countByCondition(@Param("pkProjects")String[] pkProjects,
                         @Param("creators") String[] creators,
                         @Param("startDate") String startDate,
                         @Param("endDate") String endDate,
                         @Param("billStatus") int[] billStatus);


    /**
     * 根据项目ID获得项目名称以及编号
     */
    ProjectVO selectProject(@Param("projectId") String projectId);

    /**
     * 查询停工报告总数量
     */
    Integer counts();

    /**
     * 查询相关项目下所有停工单的数据
     * @param pkProjects
     * @return
     */
    WorkStopVO[] queryByProjects(@Param("pkProjects") String[] pkProjects);

    /**
     * 根据停工单主键查询相关条目
     * @param ids
     * @return
     */
    WorkStopVO[] queryByIds(@Param("ids")String[] ids);


    /**
     * 根据项目id获得最近一条停工单数据
     * @param projectId
     * @return
     */
    WorkStopVO queryByRecently(@Param("projectId") String projectId);

}
